package com.demo.webapp.ui;

import javax.servlet.ServletContext;

import com.demo.webapp.ui.exception.LoadableResourceException;

/**
 * 组件持久化生成容器
 * @author ryuu.kk
 *
 */
public interface RepositoryBuilder {

	/**
	 * 装载组件,将各种格式文件(XML,FILE,DB等)文件装载成组件
	 * @throws LoadableResourceException
	 */
    void load() throws LoadableResourceException;

    /**
     * reload
     * @throws LoadableResourceException
     */
    void reload() throws LoadableResourceException;
    
    /**
     * 弹出装载后组件
     * @return
     */
	Object pop();
	
	/**
	 * 压入需要装载的组件
	 * @param targetObj 组件对象
	 */
    void push(Object targetObj);

    /**
     * 设置类加载器
     * @param classLoader ClassLoader
     */
	void setBeanClassLoader(ClassLoader classLoader);
	
	/**
	 * 设置Servlet上下文
	 * 目的是加载一些WEB系统指定的文件
	 * @param servletContext ServletContext
	 */
	void setServletContext(ServletContext servletContext);
}
